//package com.example.sunming.mail;
//
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.emdata.common.exception.BusinessException;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.core.io.FileSystemResource;
//import org.springframework.mail.SimpleMailMessage;
//import org.springframework.mail.javamail.JavaMailSenderImpl;
//import org.springframework.mail.javamail.MimeMessageHelper;
//import org.springframework.stereotype.Service;
//
//import javax.mail.MessagingException;
//import javax.mail.internet.MimeMessage;
//import java.io.File;
//
//
////@Service
//@Slf4j
//public class MailManager {
//
//    @Autowired
//    private JavaMailSenderImpl sender;
//
//    @Autowired
//    private MailConfigMapper mailConfigMapper;
//
//    /**
//     * @param @param to
//     * @param @param subject
//     * @param @param content
//     * @return void
//     * @throws
//     * @Title: sendSimpleMail
//     * @Description: 发送纯文本简单邮件
//     * @author: Minko liuming@em-data.com.cn
//     */
//    public void sendSimpleMail(String appId, String[] to, String subject, String content) {
//        SimpleMailMessage message = new SimpleMailMessage();
//        initConfig(appId);
//        message.setFrom(from);
//        message.setTo(to);
//        message.setSubject(subject);
//        message.setText(content);
//        sender.send(message);
//
//    }
//
//
//    public MailConfig initConfig(String appId) {
//        LambdaQueryWrapper<MailConfig> lqw = new LambdaQueryWrapper<>();
//        lqw.eq(MailConfig::getAppId, appId);
//        MailConfig config = mailConfigMapper.selectOne(lqw);
//        sender.setUsername(config.getUsername());
//        sender.setPassword(config.getPassword());
//        sender.setHost(config.getHost());
//        sender.setPort(config.getPort());
//        this.from = config.getUsername();
//        return config;
//    }
//
//
//    /**
//     * @param @param to
//     * @param @param subject
//     * @param @param content
//     * @return void
//     * @throws
//     * @Title: sendHtmlMail
//     * @Description: 发送html格式邮件
//     * @author: Minko liuming@em-data.com.cn
//     */
//    public void sendHtmlMail(String appId, String[] to, String subject, String content) {
//        MimeMessage message = sender.createMimeMessage();
//        try {
//            initConfig(appId);
//            // true表示需要创建一个multipart message
//            MimeMessageHelper helper = new MimeMessageHelper(message, true);
//            helper.setFrom(from);
//            helper.setTo(to);
//            helper.setSubject(subject);
//            helper.setText(content, true);
//            sender.send(message);
//            log.info("html mail send success");
//        } catch (MessagingException e) {
//            log.error("html mail send error: " + e.getMessage(), e);
//            throw new BusinessException(-1, e.getMessage());
//        }
//    }
//
//    /**
//     * @param @param to
//     * @param @param subject
//     * @param @param content
//     * @param @param filePath
//     * @return void
//     * @throws
//     * @Title: sendAttachmentsMail
//     * @Description: 发送带附件的邮件
//     * @author: Minko liuming@em-data.com.cn
//     */
//    public void sendAttachmentsMail(String appId, String[] to, String subject, String content, String filePath) {
//        MimeMessage message = sender.createMimeMessage();
//        try {
//            initConfig(appId);
//            MimeMessageHelper helper = new MimeMessageHelper(message, true);
//            helper.setFrom(from);
//            helper.setTo(to);
//            helper.setSubject(subject);
//            helper.setText(content, true);
//            FileSystemResource file = new FileSystemResource(new File(filePath));
//            String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
//            helper.addAttachment(fileName, file);
//            sender.send(message);
//            log.info("attachement mail send success");
//        } catch (MessagingException e) {
//            log.error("attachement mail send error:" + e.getMessage(), e);
//            throw new BusinessException(-1, e.getMessage());
//        }
//    }
//
//    /**
//     * @param @param to
//     * @param @param subject
//     * @param @param content
//     * @param @param rscPath
//     * @param @param rscId
//     * @return void
//     * @throws
//     * @Title: sendInlineResourceMail
//     * @Description: 发送嵌入静态资源（一般是图片）的邮件
//     * @author: Minko liuming@em-data.com.cn
//     */
//    public void sendInlineResourceMail(String appId, String[] to, String subject, String content, String rscPath,
//                                       String rscId) {
//        MimeMessage message = sender.createMimeMessage();
//        try {
//            initConfig(appId);
//            // true表示需要创建一个multipart message
//            MimeMessageHelper helper = new MimeMessageHelper(message, true);
//            helper.setFrom(from);
//            helper.setTo(to);
//            helper.setSubject(subject);
//            helper.setText(content, true);
//            FileSystemResource res = new FileSystemResource(new File(rscPath));
//            helper.addInline(rscId, res);
//            sender.send(message);
//            log.info("Inline Resource Mail send success!");
//        } catch (MessagingException e) {
//            log.error("Inline Resource Mail send error:" + e.getMessage());
//            throw new BusinessException(-1, e.getMessage());
//        }
//    }
//
//    private String from;
//
//    public String getFrom() {
//        return from;
//    }
//
//
//    public void setFrom(String from) {
//        this.from = from;
//    }
//}
